#ifndef _M_MEMORY_H_
#define _M_MEMORY_H_
#include "m_types.h"
#include "m_errno.h"


/**
 * @brief 分配空间
 *
 * @param size 空间大小
 * @retval NULL 分配失败
 * @retval 非NULL 分配到的地址
*/
void* MMalloc(UInt32 size);

/**
 * @brief 释放空间
 *
 * @param space 之前分配到的地址
*/
void MFree(void *space);

/**
 * @brief 获取内存总大小
 *
 * @return 执行结果，详见 MErrCode
 */
Int32 MMemoryGetTotalSpace(Int32* total_size);

/**
 * @brief 获取内存已使用大小
 *
 * @return 执行结果，详见 MErrCode
 */
Int32 MMemoryGetUsedSize(Int32* used_size);

/**
 * @brief 获取内存已使用百分比
 *
 * @return 执行结果，详见 MErrCode
 */
Int32 MMemoryGetPercentage(UInt8* percentage);

#endif  // _M_MEMORY_H_
